package br.com.gaacorp.sai.webapp.action;

import java.io.Serializable;

import br.com.gaacorp.sai.model.Questionnaire;
import br.com.gaacorp.sai.webapp.action.BasePage;
import br.com.gaacorp.sai.service.GenericManager;

public class QuestionnaireForm extends BasePage implements Serializable {
    /**
	 * 
	 */
	private static final long serialVersionUID = 8926581470231032092L;
	private GenericManager<Questionnaire, Long> questionnaireManager;
    private Questionnaire questionnaire = new Questionnaire();
    private Long questionnaireId;

    public void setQuestionnaireManager(GenericManager<Questionnaire, Long> questionnaireManager) {
        this.questionnaireManager = questionnaireManager;
    }

    public Questionnaire getQuestionnaire() {
        return questionnaire;
    }

    public void setQuestionnaire(Questionnaire questionnaire) {
        this.questionnaire = questionnaire;
    }

    public void setQuestionnaireId(Long questionnaireId) {
        this.questionnaireId = questionnaireId;
    }

    public String delete() {
        questionnaireManager.remove(questionnaire.getQuestionnaireId());
        addMessage("questionnaire.deleted");

        return "questionnaireList";
    }

    public String edit() {
        // Comparison to zero (vs. null) is required with MyFaces 1.2.2, not with previous versions
        if (questionnaireId != null && questionnaireId != 0) {
            questionnaire = questionnaireManager.get(questionnaireId);
        } else {
            questionnaire = new Questionnaire();
        }

        return "questionnaireForm";
    }

    public String save() {
        boolean isNew = (questionnaire.getQuestionnaireId() == null || questionnaire.getQuestionnaireId() == 0);
        questionnaireManager.save(questionnaire);

        String key = (isNew) ? "questionnaire.added" : "questionnaire.updated";
        addMessage(key);

        if (isNew) {
            return "questionnaireList";
        } else {
            return "questionnaireForm";
        }
    }
} 